const fs = require('fs');
const path = require('path');

// 文件
var newdirpath = path.join(__dirname, '..', 'newdir');

var newapath = path.join(newdirpath, 'newa'); //有文件的目录
var newafile = path.join(newapath, 'newa.txt');

var newbpath = path.join(newdirpath, 'newb'); //空文件目录

// 文件是否存在
function createDirWriteFile() {
    fs.access(newdirpath, (err) => {
        if (err) {
            console.log('不存在!');
            // 创建文件
            fs.mkdir(newdirpath, (err) => {
                if (err) {
                    console.log('创建失败!');
                    return;
                }
                console.log('创建成功!');
            });
        } else {
            console.log('已经存在，不用创建!');
            fs.mkdir(newapath, (err) => {
                console.log('创建新目录newa成功!');
                // 1.写文件
                // fs.writeFile(newafile,'hello world!11',(err)=>{
                //
                // });
                // 2.追加方式写文件
                fs.appendFile(newafile, 'wangwu', (err) => {});
            });
        }
    });
}

// 判断是文件还是目录
function isDirOrFile() {
    fs.stat(newdirpath, (err, stats) => {
        //console.log(newdirpath +' is '+ (stats.isFile() ? 'file':'directory'));
        if (stats.isDirectory()) {
            // 读取目录
            fs.readdir(newdirpath, (err, files) => {
                // console.log(files);
                files.forEach((item) => {
                    //console.log(path.join(newdirpath,item));
                    var filePath = path.join(newdirpath, item);
                    fs.stat(filePath, (err, stats) => {
                        var name = stats.isFile() ? 'file' : 'directory';
                        console.log(filePath + ' is ' + name);
                    });
                });
            });
        }
    });
}

// copy文件
// function copyFiles(cpath) {
//     fs.stat(cpath,(err,stats)=>{
//         if(stats.isFile()) { // 复制文件
//             var prefix = cpath.substring(0,cpath.lastIndexOf('.'));
//             var suffix = cpath.substring(cpath.lastIndexOf('.')+1);
//             //console.log(extension);
//             fs.copyFile(cpath,prefix+'Copy.'+suffix,(err)=>{
//                 console.log(cpath+' 复制成功!');
//             });
//         }else if(stats.isDirectory()) { // 复制目录及子文件
//             var newcpath = cpath+'Copy';
//             fs.access(newcpath,(err)=>{
//                 if(err) {
//                     fs.mkdir(newcpath,(err)=>{
//                         console.log(newcpath+'创建成功!');
//                         fs.readdir(cpath,(err,files)=>{
//                             if(files.length>0) {
//                                 files.forEach((item)=>{
//                                     //console.log(item);
//                                     var newfilepath = path.join(cpath,item);
//                                     var newfilepath2 = path.join(newcpath,item);
//                                     //copyFiles(newfilepath,newfilepath2);
//                                     fs.copyFile(newfilepath,newfilepath2,(err)=>{});
//                                 });
//                             }
//                         });
//                     });
//                 }else{
//                     // fs.readdir(cpath,(err,files)=>{
//                     //     if(files.length>0) {
//                     //         files.forEach((item)=>{
//                     //             //console.log(item);
//                     //             var newfilepath = path.join(cpath,item);
//                     //             var newfilepath2 = path.join(newcpath,item);
//                     //             //copyFiles(newfilepath,newfilepath2);
//                     //             fs.copyFile(newfilepath,newfilepath2,(err)=>{});
//                     //         });
//                     //     }
//                     // });
//                 }
//             });
//         }
//     });
// }
//
// // copyFiles(newafile); 复制文件
// copyFiles(newapath);
